
package br.ucb.cesbdao.modeloTabelas;

/**
 * Síntese
 *    Atributos: grupos e colunas
 *    Métodos: 
 *    		ModeloTabelaGrupo(), 
 *    		getGrupos() , setGrupos(ArrayList<Grupo>),
 *    		getColunas() , setColunas(String[]), 
 *    		getColumnName(int), 
 *    		getColumnCount(), 
 *    		getRowCount() e 
 *    		getValueAt(int, int).
 * 
 */

import java.util.ArrayList;
import java.util.List;

import javax.swing.table.AbstractTableModel;

import br.ucb.cesbdao.beans.Grupo;
import br.ucb.cesbdao.enuns.EnumDiaSemana;

@SuppressWarnings("serial")
public class ModeloTabelaGrupo extends AbstractTableModel{

    private List<Grupo> grupos  = null;
    private String []colunas = new String[] {"N° Grupo", "Nome", "Dia semana", "Horário inicial","Horário final", "Status"};
    
    public ModeloTabelaGrupo(){
        this.grupos = new ArrayList<Grupo>();
    }

    public List<Grupo> getGrupos() {
        return grupos;
    }

    public void setGrupos(ArrayList<Grupo> grupos) {
        this.grupos = (List<Grupo>)grupos;
    }

    public String[] getColunas() {
        return colunas;
    }

    public void setColunas(String[] colunas) {
        this.colunas = colunas;
    }

    @Override
    public String getColumnName(int col){
        return colunas[col];
    }

    public int getColumnCount() {
        return getColunas().length;
    }

    public int getRowCount() {
        return getGrupos().size();
    }
    public Grupo getGrupoAt(int row){
		return grupos.get(row);
	}

    public Object getValueAt(int rowIndex, int columnIndex) {
            Grupo grupo = (Grupo)grupos.get(rowIndex);
            switch(columnIndex){
                case 0:
                    return grupo.getNumeroGrupo();
                case 1:
                    return grupo.getNome();
                case 2:
                    return EnumDiaSemana.getNomeDia(grupo.getDiaSemana());
                case 3:
                    return grupo.getHorarioInicial();
                case 4:
                    return grupo.getStatus() == 'A'?"Ativo":"Inativo";
                case 5:
                	return grupo.getHorarioFinal();
                default:
                    return null;
            }
    }
}
